草庐IT

ML 方法

全部标签

c# - Entity Framework - 在使用之前检查单个记录的正确方法

为了获得记录列表,我通常会按照以下方式做一些事情:varefCompany=fromain_dbRiv.Companywherea.CompanyId==companyFeedInfo.CompanyIdselecta;要获取单个记录,当我知道我正在使用PK检索它时,我会使用类似的方法:varefCompany=(fromain_dbRiv.Companywherea.CompanyId==companyFeedInfo.CompanyIdselecta).First();现在,使用单记录方法,如果PK是错误值(就像它故意在测试中那样),第二行会抛出错误。获取和处理单个记录的最佳实践方

c# - 方法解析顺序

假设我们有:publicclassFooBase{publicvoidWrite(bytevalue){//something}publicvoidWrite(intvalue){//something}}publicclassFoo:FooBase{publicvoidWrite(decimalvalue){//something}}比这个:varwriter=newFoo();writer.Write(5);//callsWrite(decimal)!!writer.Write((byte)6);//callsWrite(decimal)!!将调用Write(decimal)重载。

c# - 将由返回字符分隔的字符串转换为 List<string> 的最佳方法是什么?

我需要经常将“字符串block”(包含返回字符的字符串,例如来自文件或文本框)转换为List.有什么方法比下面的ConvertBlockToLines方法更优雅?usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;namespaceTestConvert9922{classProgram{staticvoidMain(string[]args){stringtestBlock="lineone"+Environment.NewLine+"linetwo"+Environment.NewLine+"linethree"

c# - 扩展方法如何连接

我只是想知道扩展方法是如何连接到原始类的。我知道在IL代码中它调用了静态方法,但它是如何调用的以及为什么它不破坏封装。 最佳答案 他们不“Hook”。VisaulStudioIDE只是通过在intellisense列表中显示它们来让它看起来像它。编译器“知道”如何处理引用,以便使用正确的参数进行正确的方法调用。这就是syntacticsugar-这些方法只是单独静态类上的静态方法。使用this修饰符让编译器“知道”添加ExtensionAttribute到类以将其标记为扩展方法。由于扩展方法实际上不更改类并且只能访问其上的公共(pu

C# 重载返回类型 - 推荐方法

我有一种情况,我只是希望方法重载的返回类型不同,但在C#中不能这样做。处理此问题的最佳方法是什么?我需要这个是否意味着我的程序结构有缺陷?鉴于这在C#中是不可能的,推荐的方法是什么? 最佳答案 通常,您只需为方法指定不同的名称。一个例子是IDataReader和GetInt32,GetInt64等老实说,我相信这通常会让您更​​清楚地了解您想要做什么-特别是如果您随后调用一个重载方法并得到结果:Console.WriteLine(reader.GetInt32());//ThisisclearConsole.WriteLine(fo

c# - 检查内部方法是否传递了一些可选参数

如何检查可选参数是否传递给方法?publicvoidExampleMethod(intrequired,stringoptionalstr="defaultstring",intoptionalint=10){if(optionalintwaspassed)return;}另一种方法是使用Nullable.HasValue(MSDNdefinitions,MSDNexamples):intdefault_optionalint=0;publicvoidExampleMethod(intrequired,int?optionalint,stringoptionalstr="default

c# - 将 LINQ 与 CancellationToken 一起使用的正确方法

我正在尝试使用CancellationToken编写支持取消的LINQ查询.NET框架中提供的机制。但是,尚不清楚结合取消和LINQ的正确方法是什么。使用PLINQ,可以这样写:varresultSequence=sourceSequence.AsParallel().WithCancellation(cancellationToken).Select(myExpensiveProjectionFunction).ToList();不幸的是,WithCancellation()仅适用于ParallelEnumerable-因此它不能与普通的旧LINQ查询一起使用。当然,可以使用With

c# - 以下方法 : Identical. NameSpace.InitializeComponent() 和 Identical.NameSpace.InitializeComponent() 之间的调用不明确

好吧,我怀疑这可能是VisualStudio的问题,但肯定有一些原因。我从默认项目列表创建了一个ListBox(右键单击项目或项目中的文件夹->添加->新项目->XamlListBox)。我立即收到一strip有错误的红色波浪线:"Error2Thecallisambiguousbetweenthefollowingmethodsorproperties:'Identical.NameSpace.ListBox1.InitializeComponent()'and'Identical.NameSpace.ListBox1.InitializeComponent()'C:\Documen

c# - 从用户输入的逗号分隔字符串中删除所有额外空格到数组中的最干净的方法是什么

程序让用户在数组中输入逗号分隔的字符串:basketball,baseball,soccer,tennis逗号之间可以有空格,也可以没有。如果这个字符串只是逗号上的split(),那么数组中的某些项目可能在它们之前或之后有空格。清理它的最佳方法是什么? 最佳答案 您可以为此使用Regex.Split:string[]tokens=Regex.Split("basketball,baseball,soccer,tennis",@"\s*,\s*");正则表达式\s*,\s*可以读作:“匹配零个或多个空白字符,后跟逗号和零个或多个空白字

c# - Get 方法的大小

就代码行而言,对于“获取”的大小是否有任何指导方针或普遍共识?我有一个成员的Get方法,这里的代码很容易增长到30行。我不确定应该在什么时候将其提取到方法中。但后来我只会将其称为GetMyString之类的名称并将值分配给另一个成员并在构造函数中调用它。这样做值得吗?这对SO来说太主观了吗? 最佳答案 dcastro的回答很好,但可以使用一些扩展:没多久就回来了这还没有量化;让我们量化一下。一个属性所花的时间不应超过获取字段所花时间的十倍。它不连接到外部资源(数据库、服务等)那些很慢,因此通常属于第一条规则,但还有第二个方面:失败应